package com.weichen.studentgameexchange.game.entity.vo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.weichen.studentgameexchange.common.enums.GameStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 功能：
 * 作者：惟尘
 * 日期：2025/2/1 22:36
 */
@Data
@ToString
@Schema(name = "Game对象", description = "添加游戏信息页面视图实体")
public class AddGameVo {

    /**
     * 游戏名字
     */
    @TableField("game_name")
    @Schema(description = "游戏名字")
    private String gameName;

    /**
     * 游戏图片URL，指向游戏的封面图片
     */
    @TableField("game_picture")
    @Schema(description = "游戏图片URL，指向游戏的封面图片")
    private String gamePicture;

    /**
     * 游戏描述，对游戏的简短描述
     */
    @TableField("game_description")
    @Schema(description = "游戏描述，对游戏的简短描述")
    private String gameDescription;


    /**
     * 1-正常 2-下架 3-测试
     */
    @TableField("status")
    @Schema(description = "1-正常 2-下架 3-测试")
    private GameStatus status;

    /**
     * 游戏下载链接
     */
    @TableField("download")
    @Schema(description = "游戏下载链接")
    private String download;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;


    /**
     * 开发商名字
     */
    @TableField(exist = false)
    @Schema(description = "开发商名字")
    private String developerName;

    /**
     * 类型名称（如动作、冒险）
     */
    @TableField(exist = false)
    @Schema(description = "游戏类型名称列表（如动作、冒险）")
    private List<String> genreNames;

    /**
     * 版本号
     */
    @Schema(description = "版本号")
    @TableField("version_number")
    private String versionNumber;

    /**
     * 发布日期
     */
    @Schema(description = "发布日期")
    @TableField("release_date")
    private LocalDate releaseDate;
}
